package cn.kgc.hotel.service;

import cn.kgc.hotel.entity.*;
import cn.kgc.hotel.entity.Param.RoomParam;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface RoomService {
    //按入住日期和关键字，查询所有可预订房型信息
    List<RoomType> searchRoomType(String[] dateList, String keyWord);

    //按房型ID和入住日期查询房型信息
    RoomType searchRoomTypeById(Integer typeId, String[] dateList);

    //按房型ID和入住日期查询空房间
    List<Room> searchRooms(Integer typeId, String[] dateList);

    //郅连山
    List<Room> showRoom(Integer roomNums, String roomType, String roomFloor, String roomState);

    //新增room表和roomDate表的数据
    boolean addRoom(RoomParam roomParam);

    //修改新增room表和roomDate表的数据
    boolean updateRoom(RoomParam roomParam);

    //删除room表和roomDate表的数据
    boolean deleteRoom(RoomParam roomParam);

    //房间预订,房间订单表room_reserve insert
    boolean roomReserve(RoomReserve roomReserve, List<RoomDate> roomDateList,
                        List<RoomCustomer> roomCustomerList, List<Customer> customerList);

    //查询房间预订
    List<RoomReserve> searchRoomReserve(int userId);

    //修改房间预订
    boolean updateRoomReserve(RoomReserve roomReserve);

    //取消房间预订
    boolean cancelRoomReserve(RoomReserve roomReserve);

}
